package co.edu.aplicacion.servicios.impl;

import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Queue;

import co.edu.aplicacion.Cancion;
import co.edu.aplicacion.persistencia.impl.DAOCancion;
import co.edu.aplicacion.servicios.def.ILectorArchivo;

public class HiloBuscador implements Runnable {

	private Queue<String> directorios;
	private List<Cancion> canciones;
	private String ruta;
	private Map<String,String> rutas;
	private ILectorArchivo lectorArchivo = LectorArchivojid3.demeSolitario();

	public HiloBuscador(Queue<String> directorios, String ruta,List<Cancion> canciones,Map<String,String> rutas) {
		this.directorios = directorios;
		this.canciones = canciones;
		this.ruta = ruta;
		this.rutas=rutas;
	}

	@Override
	public void run() {
		synchronized (rutas) {
			if(rutas.get(ruta)!=null){
				return;
			}
		}
		Cancion canc;
		File directorio = new File(ruta);
		DAOCancion daoCancion=new DAOCancion();
		for (File archivo : directorio.listFiles()) {
			if (archivo.isDirectory()) {
				synchronized (directorios) {
					directorios.add(archivo.getAbsolutePath());
				}
			} else {
				if (!archivo.getAbsolutePath().endsWith("mp3")) {
					continue;
				}
				try {
					canc = lectorArchivo.cargarCancion(archivo.getAbsolutePath());
					daoCancion.insertar(canc);
					canciones.add(canc);
				} catch (Exception e) {
					continue;
				}
				canciones.add(canc);
			}
		}
		rutas.put(ruta, ruta);

	}

}
